Bunny is a feedback loop, high-performance, general purpose
protocol-blind fuzzer for C programs (though in principle easily
portable to any other imperative procedural language).

The novelty of this tool arises from its use of compiler-level
integration to seamlessly inject precise and reliable instrumentation
hooks into the traced program. These hooks enable the fuzzer to receive
real-time feedback on changes to the function call path, call
parameters, and return values in response to variations in the input
data.

This architecture makes it possible (and quite simple!) to significantly
improve the coverage of the testing process without a noticeable
performance impact usually associated with other attempts to peek into
run-time internals.
